Integrations
15 integrations, six webhook events, one REST API.
Nothing to rewrite before the first preview.
Canary works from what is already in the repository and the cloud account. If your stack runs from a Compose file or a chart, it runs as a preview.
-
Source control
GitHub
Checks, deployments and a comment on every pull request.
Cloud · Enterprise Server 3.10+
-
GitLab
Merge request pipelines, environments and merge trains.
Cloud · self-managed 16+
-
Bitbucket
Pull request builds and a status on each commit.
Cloud Beta
-
Built from
Docker Compose
The file you run locally, profiles and overrides included.
Compose v2
-
Helm
Your chart, with a values file layered on for each branch.
Helm 3 · OCI charts
-
Dockerfile
A single service with nothing else to describe.
BuildKit
-
Data
Postgres
Restored from a nightly snapshot, masked before it leaves the bucket.
13 to 17
-
MySQL
The same snapshot, mask and restore, with binlog off.
8.0 and 8.4
-
Redis
Started empty, or seeded from an RDB file in the repo.
6 and 7
-
Runs in
AWS
A runner on EKS or plain EC2, in the account and region you choose.
us-east-1 · us-east-2 · us-west-2
-
Google Cloud
A runner on GKE, with previews as namespaces.
us-central1 · us-east4 · us-west1
-
Secrets
AWS Secrets Manager
Read at build time with a role the runner assumes.
Scoped by prefix
-
Vault
Short-lived tokens for each preview, revoked at teardown.
KV v2
-
Tells your team
Slack
One message for each pull request, updated as the preview changes.
Threads per pull request
-
Webhooks
Six signed events, for everything this list does not name.
HMAC-SHA256
Something missing? Most of this list started as a customer asking. Tell us what you run
Anything else, by webhook.
Every change in a preview's life is an event you can subscribe to. Post the link to a ticket, start an end-to-end run, or page nobody at all.
- Six events
- preview.building, preview.ready, preview.asleep, preview.awake, preview.failed and preview.torn_down.
- Signed and retried
- Every delivery carries an HMAC signature and is retried with backoff for 24 hours.
- Or ask instead
- The REST API and the CLI return the same objects, so a script can poll for what a webhook would push.
- {
- "event": "preview.ready",
- "pull_request": 482,
- "branch": "feat/multi-currency",
- "commit": "9f3e1b0",
- "url": "https://pr-482.northwind.canary.run",
- "services": ["web", "api", "worker"],
- "ready_in_seconds": 221,
- "sleeps_after": "30m",
- "teardown": "on_merge"
- }
Point it at a repository you already have.
Canary reads your Compose file or chart and builds the first preview while you watch the log. The first 500 preview-hours are free.